import grails.util.GrailsUtil
import com.edusite.Logbook
import com.edusite.Personas
import com.edusite.Administradores
import com.edusite.Alumnos
import com.edusite.Profesores
import com.edusite.Cursos
import com.edusite.Asignaturas

class BootStrap {
     

    
     def init = { servletContext ->
//        iniciar()
        def directo = new File ("Asignaturas")
       	if (directo.mkdir())
	   println "Creada carpeta asignaturas"
	
	
     	altaAdministrador()
     	altaAlumnos()
     	altaCursos()
        rellenaDatos()
        enviacorreo()
        println "* Buenos dias Urcalanda *"

        
     }
     

     
     
     void altaAdministrador(){
     if (!Administradores.findByUsuario('sistema')){
    	def sistema = new Administradores(
     	   nombre:'Sistema',
     	   usuario:'sistema',
     	   tipo:'admin',
	   password:'urcalanda',
	   dni:'00000000Z', 
	   correoe:'ent.educativo@gmail.com',
	   direccion:"Naboo",
	   poblacion:"Naboo",
	   provincia:"Naboo",
	   telefono:"000000000"
     	)

     	if(sistema.save())
     	println "Se ha dado de alta al sistema"
      }
      	
     if (!Administradores.findByUsuario('admin')){
     	def sistema2 = new Administradores(
     	   nombre:'Administrador',
     	   usuario:'admin',
     	   tipo:'admin',
	   password:'admin',
	   dni:'00000000A', 
	   correoe:'ent.educativo@gmail.com',
	   direccion:"Naboo",
	   poblacion:"Naboo",
	   provincia:"Naboo",
	   telefono:"000000000"
     	)
	if (sistema2.save())
     	println "Se ha dado de alta al Administrador"
     }	
//   println sistema2.errors
   }

     void altaAlumnos(){
     if (!Personas.findByUsuario('pepete')){
     	def alum = new Alumnos(
     	   nombre:'Jose',
     	   apellidos:'Perez Perez',
     	   usuario:'pepete',
     	   tipo:'alumno',
	   password:'pepete',
	   dni:'22334455B', 
	   correoe:'ent.educativo@gmail.com',
	   direccion:"PPT",
	   poblacion:"PPT",
	   provincia:"PPT",
	   telefono:"666223344"
     	)

     	if (alum.save())
     	println "Se ha dado de alta al alumno Pepete"
      }

     if (!Personas.findByUsuario('juanele')){
     	def alum2 = new Alumnos(
     	   nombre:'Juan',
     	   apellidos:'Martinez Martinez',
     	   usuario:'juanele',
     	   tipo:'alumno',
	   password:'juanele',
	   dni:'22334455C', 
	   correoe:'juanele@gmail.com',
	   direccion:"JJL",
	   poblacion:"JJL",
	   provincia:"JJL",
	   telefono:"666334455"
     	)
	if (alum2.save())     
     	println "Se ha dado de alta al Alumno Juanele"
     }
     
     if (!Personas.findByUsuario('profe')){
     	def prof = new Profesores(
     	   nombre:'Profesor',
     	   apellidos:'Gonzalez Gonzalez',
     	   usuario:'profe',
     	   tipo:'profesor',
	   password:'profe',
	   dni:'22334466A', 
	   correoe:'profe@gmail.com',
	   direccion:'pr',
	   poblacion:'pr',
	   provincia:'pr',
	   telefono:'666554422',
	   departamento:'Informatica'
	)
	if (prof.save())
     	println "Se ha dado de alta al Profesor profes"

     }
     
     
     	
   }

     void altaCursos(){
     if (!Cursos.findByNombre('Informática de Sistemas')){
     	def curs = new Cursos(
	nombre:'Informática de Sistemas',
	descripcion:'Informática de Sistemas, abiertos, cerrados y actualizables',
	precio:0 ,
	fechacomienzo:new Date(),
	fechafinal:new Date() + 30,
 
     	)
     	if (curs.save())
     	println "Se ha dado de alta el curso Informática"

 
     	
     	

      }

     if (!Cursos.findByNombre('Encaje de Bolillos')){
     	def curs2 = new Cursos(
	nombre:'Encaje de Bolillos',
	descripcion:'Taller para mayores de recuperacion de tradiciones',
	precio:0 ,
	fechacomienzo:new Date(),
	fechafinal:new Date() + 30,
 
     	)
     	if (curs2.save())
     	println "Se ha dado de alta el curso Encaje de Bolillos"

      }

      	
     if (!Asignaturas.findByNombre('Matemáticas')){
     	def asig = new Asignaturas(
	nombre:'Matemáticas',
	descripcion:'Matemáticas de toda la vida',
	idasignatura:'00001',
	tutor:Profesores.findByUsuario('profe'),
	directorio:'/Asignaturas/00001',
	curso:Cursos.findByNombre('Informática de Sistemas')
   	)
     	if (asig.save())
     	println "Se ha dado de alta la Asignatura Matematicas"
     	
        def directo = new File ("Asignaturas/"+asig.idasignatura)
       	if (directo.mkdir())
             println "Creado el directorio!" + asig.idasignatura  


     }

      if (!Asignaturas.findByNombre('Programacion')){
     	def asig2 = new Asignaturas(
	nombre:'Programacion',
	descripcion:'Programación estructurada',
	idasignatura:'00002',
	tutor:Profesores.findByUsuario('profe'),
	directorio:'/Asignaturas/00002',
	curso:Cursos.findByNombre('Informática de Sistemas')
   	)
     	if (asig2.save())
     	
     	println "Se ha dado de alta la Asignatura Programación"

        def directo = new File ("Asignaturas/"+asig2.idasignatura)
       	if (directo.mkdir())
             println "Creado el directorio! " + asig2.idasignatura  

     }     	

     if (!Asignaturas.findByNombre('Bolillos')){
     	def asig3 = new Asignaturas(
	nombre:'Bolillos',
	descripcion:'Descripción y uso del mismo, distintos tipos y clases de bolillos',
	idasignatura:'00003',
	tutor:Profesores.findByUsuario('profe'),
	directorio:'/Asignaturas/00003',
	curso:Cursos.findByNombre('Encaje de Bolillos')
   	)
     	if (asig3.save())
     	println "Se ha dado de alta la Asignatura Bolillos"
         def directo = new File ("Asignaturas/"+asig3.idasignatura)
       	if (directo.mkdir())
             println "Creado el directorio!" + asig3.idasignatura  


     }

      if (!Asignaturas.findByNombre('Hilos')){
     	def asig4 = new Asignaturas(
	nombre:'Hilos',
	descripcion:'Descripción de los hilos. Materiales y fabricación de los mismos ',
	idasignatura:'00004',
	tutor:Profesores.findByUsuario('profe'),
	directorio:'/Asignaturas/00004',
	curso:Cursos.findByNombre('Encaje de Bolillos')
   	)
     	if (asig4.save())
     	println "Se ha dado de alta la Asignatura Hilos"
         def directo = new File ("Asignaturas/"+asig4.idasignatura)
       	if (directo.mkdir())
             println "Creado el directorio!" + asig4.idasignatura  


     }     	


   }

    
     void rellenaDatos() {
	
	def perso= Personas.findByUsuario('sistema')
	
	def log = new Logbook(
	    person:perso,
	    entrada:new Date(),
	    salida:new Date(),
	    tarea:'Inicio del sistema'
	    )
	    if (log.save())
	    println "registro entrada a logbook salvado"
}

      def enviacorreo ={
/*           def fechahoy = new Date()
           sendMail {
                 to "josemar1992@gmail.com"
                 subject "Entorno Educativo, envio de información"
                 body "Buenos dias Urcalanda. Se ha arrancado la aplicación version 0.2.0 13 diciembre. Incluidos apellidos"
            }*/
         }

      def destroy = {
	def log= new Logbook()
	def perso= Personas.findByUsuario('sistema')
	log.person=perso
	log.entrada=new Date()
	log.salida= new Date(0)
	log.tarea="Salida del sistema"
	
	if (log.save(flush:true)) {
	println "registro salida a logbook salvado"
	}      
        println "* Hasta pronto Urcalanda *"
     }
     
} 

